package jfuzzyprincepless.zarchive.puntaelenaexperiments;

import laboratoryQ.LaboratoryQFront;
import laboratoryQ.experiment.reportage.ui.ExperimentReportage;
import laboratoryQ.experiment.settings.ReflectionBasedSettingsContainer;

public class Z_arch_MainPuntaElenaOfSavoiaA {
	public static void main(String[] args) {
//### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
		FGraphSzDepCompareFactor3vsTrivialExSettings settings =
			new FGraphSzDepCompareFactor3vsTrivialExSettings();
		settings.initialise();

		settings.randomSeed = 4045;

		settings.citiesCountBeg = 100;
		settings.citiesCountEnd = 300;

		settings.facilitiesCountBeg = 30;
		settings.facilitiesCountEnd = 50;

		settings.neighborCountBeg = 10;
		settings.neighborCountRange = 5;

		settings.cheapEdgeBeg = 100;
		settings.cheapEdgeRange = 50;
		settings.expensiveEdgeBeg = 200;
		settings.expensiveEdgeRange = 100;

		settings.facilityPriceBeg = 200;
		settings.facilityPriceRange = 500;

		settings.validate();

//### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###

		ReflectionBasedSettingsContainer settingsContainer =
			new ReflectionBasedSettingsContainer(settings);
		settingsContainer.sortFields(
			"randomSeed",
			"citiesCountBeg",
			"citiesCountEnd",

			"facilitiesCountBeg",
			"facilitiesCountEnd",

			"neighborCountBeg",
			"neighborCountRange",

			"cheapEdgeBeg",
			"cheapEdgeRange",
			"expensiveEdgeBeg",
			"expensiveEdgeRange",

			"facilityPriceBeg",
			"facilityPriceRange"
		);

//### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###

		FacilitiesDiagramExtractorA fdiaExtractor =
			new FacilitiesDiagramExtractorA();
		ExperimentReportage experimentReportage =
			LaboratoryQFront.createDiagramsReportage(
				fdiaExtractor,
				fdiaExtractor,
				settingsContainer,
				"MainPuntaElenaOfSavoiaA"
			);
		LaboratoryQFront.showReportageFrame(null, experimentReportage);
	}
}
